# pip install matplotlib
# pip install Numpy
import numpy as np
import matplotlib.pyplot as plt

img1 = plt.imread("example.jpg")
# 三维数组  最高维度 表示图像高，次高维度代表图像的宽，最低维度代表RGB
print("type", type(img1), "img", img1)
# 绘制图像
plt.imshow(img1)
# 显示图像


print("-" * 20)
# 创建数组 灰度公式
n = np.array([0.299, 0.587, 0.114])
print(type(n), n)
# 图像的3维数组，与n数组，进行点乘运算
x = np.dot(img1, n)
# 进行绘制,计算的结果x
plt.imshow(x, cmap="gray")
# 进行显示
plt.show()
# plt.imshow和plt.show的区别，为什么要同时用？
#
# plt.imshow()函数用于显示图像，它将图像数据作为参数，并将其显示在当前的图形窗口中。它可以根据图像的值自动进行颜色映射，以便可视化图像。
#
# 而pt.show()函数则用于显示当前所有的图形窗口。在使用pltimshow()函数显示图像后，需要调用plt.show()函数才能将图像窗口显示出来。
#
# 为什么要同时使用这两个函数呢?这是因为在matplotlib 中,plt.imshow()函数只是将图像数据加载到内存中，并没有直接显示出来。通过调用plt.show()函数，可以将所有的图形窗口一起显示出来。所以，在绘制图像后，需要调用plitshow()函数才能看到绘制的结果。如果只调用plt.imshow()而不调用plt.show()，那么图像窗口是不会显示出来的。

# https://www.runoob.com/matplotlib/matplotlib-imshow.html
